/*
 * Copyright 2022-2029 heshuixing(https://gitee.com/heshuixing)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.mercury.ec.module.air.controller.admin.search.vo.flight;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * 航班信息 Response VO
 *
 * @author hesx
 */
@Data
@Schema(description = "管理后台 - 航班信息 Response VO")
public class AirFlightRespVO {

    @Schema(description = "渠道编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "102")
    private Long channelId;

    @Schema(description = "渠道类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer channelType;

    @Schema(description = "渠道名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "渠道名称")
    private String channelName;

    @Schema(description = "航司代码", requiredMode = Schema.RequiredMode.REQUIRED, example = "CA")
    private String airlineNo;

    @Schema(description = "航司名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "广州南方航空")
    private String airlineName;

    @Schema(description = "航司logo", example = "")
    private String airlineLogo;

    @Schema(description = "承运航司代码", example = "CA")
    private String carrierAirlineNo;

    @Schema(description = "承运航司名称", example = "广州南方航空")
    private String carrierAirlineName;

    @Schema(description = "承运航司logo", example = "")
    private String carrierAirlineLogo;

    @Schema(description = "航班号", requiredMode = Schema.RequiredMode.REQUIRED, example = "123")
    private String flightNo;

    @Schema(description = "承运航班号", example = "CA123")
    private String carrierFlightNo;

    @Schema(description = "出发地三字码", requiredMode = Schema.RequiredMode.REQUIRED, example = "CAN")
    private String depart;

    @Schema(description = "出发地机场名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "白云国际机场")
    private String departAirportName;

    @Schema(description = "目的地三字码", requiredMode = Schema.RequiredMode.REQUIRED, example = "CAN")
    private String arrive;

    @Schema(description = "目的地机场名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "白云国际机场")
    private String arriveAirportName;

    @Schema(description = "出发航站楼", requiredMode = Schema.RequiredMode.REQUIRED, example = "T1")
    private String departTerminal;

    @Schema(description = "抵达航站楼", requiredMode = Schema.RequiredMode.REQUIRED, example = "T2")
    private String arriveTerminal;

    @Schema(description = "出发时间(HH:mm)", requiredMode = Schema.RequiredMode.REQUIRED, example = "13:00")
    private String departTime;

    @Schema(description = "抵达时间(HH:mm)", requiredMode = Schema.RequiredMode.REQUIRED, example = "13:00")
    private String arriveTime;

    @Schema(description = "机型", requiredMode = Schema.RequiredMode.REQUIRED, example = "737")
    private String airModel;

    @Schema(description = "机型名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "波音737（中）")
    private String airModelName;

    @Schema(description = "是否提供餐食", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
    private Boolean haveFood;

    @Schema(description = "餐食类型", example = "快餐")
    private String foodType;

    @Schema(description = "是否共享航班", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
    private Boolean share;

    @Schema(description = "是否通程", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
    private Boolean through;

    @Schema(description = "是否经停", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
    private Boolean stop;

    @Schema(description = "经停信息", example = "[]")
    private List<AirFlightStopRespVO> stops;

    @Schema(description = "准点率", example = "90")
    private BigDecimal punctualityRate;

    @Schema(description = "飞行距离", example = "1000")
    private Integer distance;

    @Schema(description = "飞行天数", example = "1")
    private Integer flightDays;

    @Schema(description = "飞行时间", example = "2小时20分")
    private String flightTimes;

    @Schema(description = "机建税", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
    private BigDecimal airportTax;

    @Schema(description = "燃油税", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
    private BigDecimal oilTax;

    @Schema(description = "客户协议类型 字典（air_customer_agreement_type 1-普通/2-GP/3-三方协议）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    private Integer customerAgreementType;

    @Schema(description = "折扣", requiredMode = Schema.RequiredMode.REQUIRED, example = "0.9")
    private BigDecimal discount;

    @Schema(description = "最低价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
    private BigDecimal lowestPrice;
}
